package com.yu.Service;

import com.yu.DAO.*;
import com.yu.POJO.*;
import com.yu.tool.MyJson;
import com.yu.tool.pageTool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: LittleFisher
 * @Date: 2021/06/10/0:42
 * @Description:
 */
@Service
public class teaServiceImpl implements teaService{
    @Autowired
    private CourseDao CD;
    @Autowired
    private TeacherDao td;
    @Autowired
    private ScDao scd;
    @Autowired
    private CCDao ccd;

    @Autowired
    private clazzDao clazzD;

    @Autowired
    private StudentDao sd;

    /**
     *  获取老师所教课程
     * @param id
     * @return
     */
    @Override
    public List<Course> teaGetCourse(int id){
        return CD.getCourseByTea_id(id);
    }

    /**
     * 获取老师教的班级id
     * @return
     */
    @Override
    public List<Clazz> teaClazzName(int tea_id){
        List<CC> list= ccd.findCCByTea_id(tea_id);
        List<Clazz> listInt = new ArrayList<Clazz>();
        for (CC cc:list) {
           if(isClazz(listInt,cc)==false){
               listInt.add(clazzD.findClazzByID(cc.getClazz_id()));
           }

        }
        return listInt;
    }

    /**
     *  判断班级是否存在了 存在返回true
     * @param listInt
     * @param cc
     * @return
     */
    public boolean isClazz(List<Clazz> listInt,CC cc){
        for (Clazz c: listInt) {
            if(c.getId()==clazzD.findClazzByID(cc.getClazz_id()).getId()) {
                return true;
            }
        }
        return false;
    }
    @Override
    public List<Student> getClazzStu(int clazz_id){
        return sd.getStuByClazz_id(clazz_id);
    }


    /**
     *  登录验证
     * @param name 老师名
     * @param password 密码
     * @return
     */
    @Override
    public MyJson teaLogin(String name,String password){
        MyJson myJson = new MyJson();
        Teacher teacher = td.findTeaByName(name);
        if(teacher==null){
            myJson.setMsg(false);
            myJson.setError("查无此人");
            return myJson;
        }
        if(password.equals(teacher.getPassword())) {
            myJson.setMsg(true);
        }
        else {
            myJson.setMsg(false);
            myJson.setError("密码错误");
        }
        return myJson;
    }

    /**
     *  修改密码
     * @param id 老师id
     * @param old 旧密码
     * @param newp 新密码
     * @return
     */
    @Override
    public MyJson upPass(int id, String old, String newp){
        MyJson myJson = new MyJson();
        Teacher teacher = td.findTeacherById(id);

        if(teacher==null){
            myJson.setMsg(false);
            myJson.setError("数据库错误");
        }

        if(teacher.getPassword().equals(old)){
            if(td.upPass(id,newp)>0){
                myJson.setMsg(true);
            }else {
                myJson.setMsg(false);
                myJson.setError("数据库错误");
            }
        }else {
            myJson.setMsg(false);
            myJson.setError("旧密码不对");
        }
        return myJson;
    }

    /**
     *  通过老师名字查找老师
     * @param name 老师名字
     * @return
     */
    @Override
    public Teacher findTeaByName(String name){
        return td.findTeaByName(name);
    }

    /**
     *  录入成绩
     * @param sc
     * @return
     */
    @Override
    public MyJson upGrade(Sc sc){
        MyJson myJson = new MyJson();

        if(scd.upGrade(sc)>0){
            myJson.setMsg(true);
        }else {
            myJson.setMsg(false);
            myJson.setError("数据库错误");
        }
        return myJson;
    }

    /**
     *  获取老师所教的学生的Sc表
     * @param
     * @return
     */
    @Override
    public List<Sc> getTeaSC(int course_id){
      /*  List<Course> list = CD.getCourseByTea_id(tea_id);
        List<Sc> scs = new ArrayList<Sc>();
        for (Course course:list) {
            List<Sc> scs2 = scd.getScByCourse_id(course.getId());
            if(scs2!=null){
                for (Sc sc:scs2) {
                    scs.add(sc);
                }
            }
        }*/
        List<Sc> scs = scd.getScByCourse_id(course_id);
        for (Sc sc:scs) {
            if(CD.getCourseByID(sc.getCourse_id())!=null){
                sc.setCourse_name(CD.getCourseByID(sc.getCourse_id()).getName());
            }
        }


        return scs;
    }

}
